home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Libraries / GUSI / GUSISIOW.cp < prev    next >
Text File  |  1993-08-10  |  1KB  |  87 lines

  1. /*********************************************************************
  2. Project    :    GUSI                -    Grand Unified Socket Interface
  3. File        :    GUSISIOW.cp        -    Update & activate SIOW window
  4. Author    :    Matthias Neeracher
  5. Started    :    17Apr92                                Language    :    MPW C/C++
  6.                 27Apr92    MN    C++ version
  7.                 18Dec92    MN    _DoActivate incorrectly depends on current port
  8. Last        :    18Dec92
  9. *********************************************************************/
  10.  
  11. #include "GUSI_P.h"
  12.  
  13. #include <Events.h>
  14. #include <Windows.h>
  15.  
  16. static void GUSISIOWActivate(EventRecord * ev);
  17. static void GUSISIOWUpdate(EventRecord * ev);
  18. static void GUSISIOWSusRes(EventRecord * ev);
  19.  
  20. GUSIEvtHandler    GUSISIOWEvents[]    =    {
  21.     nil,
  22.     
  23.     nil,
  24.     nil,
  25.     nil,
  26.     nil,
  27.     
  28.     nil,
  29.     GUSISIOWUpdate,
  30.     nil,
  31.     GUSISIOWActivate,
  32.     
  33.     nil,
  34.     nil,
  35.     nil,
  36.     nil,
  37.     
  38.     nil,
  39.     nil,
  40.     GUSISIOWSusRes,
  41.     nil,
  42.     
  43.     nil,
  44.     nil,
  45.     nil,
  46.     nil,
  47.     
  48.     nil,
  49.     nil,
  50.     nil,
  51. };
  52.  
  53. extern "C" void _DoActivate(WindowPtr win, int activate);
  54. extern "C" void _DoUpdate(WindowPtr win);
  55.  
  56. static void GUSISIOWActivate(EventRecord * ev)
  57. {
  58.     GrafPtr port;
  59.     
  60.     GetPort(&port);
  61.     
  62.     if ((WindowPtr) ev->message)
  63.         SetPort((WindowPtr) ev->message);
  64.         
  65.     _DoActivate((WindowPtr) ev->message, ev->modifiers & activeFlag);
  66.     
  67.     SetPort(port);
  68. }
  69.  
  70. static void GUSISIOWUpdate(EventRecord * ev)
  71. {
  72.     _DoUpdate((WindowPtr) ev->message);
  73. }
  74.  
  75. static void GUSISIOWSusRes(EventRecord * ev)
  76. {    GrafPtr port;
  77.     
  78.     GetPort(&port);
  79.     SetPort(FrontWindow());
  80.         
  81.     _DoActivate(FrontWindow(), (int) ev->message & 1);
  82.     
  83.     SetPort(port);
  84. }
  85.  
  86.  
  87.